From 545c5a016eba8128d4ade02aa506b8821a00a38c Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 8 Nov 2022 02:22:18 -0800 Subject: fix 2fa --- src/routes/(app)/[username]/settings/+page.server.js | 11 ----------- src/routes/(app)/[username]/settings/+page.svelte | 11 ++++------- src/routes/(app)/[username]/settings/_pos.svelte | 13 ++----------- src/routes/(app)/[username]/settings/_security.svelte | 17 +++++++++++------ 4 files changed, 17 insertions(+), 35 deletions(-) (limited to 'src/routes/(app)/[username]/settings') diff --git a/src/routes/(app)/[username]/settings/+page.server.js b/src/routes/(app)/[username]/settings/+page.server.js index 713841c2..482b70b1 100644 --- a/src/routes/(app)/[username]/settings/+page.server.js +++ b/src/routes/(app)/[username]/settings/+page.server.js @@ -1,16 +1,5 @@ import { invalid } from '@sveltejs/kit'; import { auth, get, post } from '$lib/utils'; -import Qr from 'qrcode-base64'; - -export async function load({ locals: { user } }) { - return { - otpQr: Qr.drawImg( - `otpauth://totp/coinos:${user.username}?secret=${user.otpsecret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`, - { size: 600 } - ) - }; -} - export const actions = { default: async ({ cookies, locals, request }) => { let form = Object.fromEntries(await request.formData()); diff --git a/src/routes/(app)/[username]/settings/+page.svelte b/src/routes/(app)/[username]/settings/+page.svelte index f4660fab..250087c1 100644 --- a/src/routes/(app)/[username]/settings/+page.svelte +++ b/src/routes/(app)/[username]/settings/+page.svelte @@ -15,11 +15,11 @@ export let data; export let form; - let { user, rates, token } = data; + let { user, token } = data; $: update(data); - let update = () => ({ user, rates, token } = data); + let update = () => ({ user, token } = data); - $: form && ({ user } = form); + $: form?.user && ({ user } = form); $: if (form?.message?.startsWith('Pin')) { failure('Wrong pin, try again'); @@ -39,7 +39,6 @@ let loading, submit; let save = async (msg) => { loading = true; - if (typeof msg !== 'string') msg = 'Settings saved'; try { if ($avatarUpload) { @@ -49,8 +48,6 @@ if ($bannerUpload) { await upload($bannerUpload.file, $bannerUpload.type, $bannerUpload.progress, token); } - - success(msg); } catch (e) { console.log(e); failure('Something went wrong'); @@ -85,7 +82,7 @@ {/each} - +
@@ -16,12 +16,3 @@ {/each}
- - diff --git a/src/routes/(app)/[username]/settings/_security.svelte b/src/routes/(app)/[username]/settings/_security.svelte index 98b9b503..4bdb00d4 100644 --- a/src/routes/(app)/[username]/settings/_security.svelte +++ b/src/routes/(app)/[username]/settings/_security.svelte @@ -5,9 +5,10 @@ import { Pincode, PincodeInput } from 'svelte-pincode'; import { post, success, failure } from '$lib/utils'; import { pin as current } from '$lib/store'; + import { invalidate } from '$app/navigation'; + import { page } from '$app/stores'; export let user, submit; - let settingPin, setting2fa, disabling2fa; let token = ''; @@ -23,6 +24,12 @@ $: pin = pinCode.join(''); + let otp; + $: pinChange($current); + let pinChange = async (pin) => { + otp = await post('/otpsecret', { pin }); + }; + let locked; $: verifyCode.join('').length > 5 && checkPin(); let checkPin = async () => { @@ -108,8 +115,6 @@ failure('Failed to disable 2FA, try again'); } }; - - $: otpUri = `otpauth://totp/coinos:${user.username}?secret=${user.otpsecret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`;
@@ -172,13 +177,13 @@ {$t('user.settings.twofaDescription')}

{#if setting2fa} - - + +
{$t('user.settings.accountId')}
- {user.otpsecret} + {otp.secret}
-- cgit v1.2.3